package com.oyjd.ybx.business.role.service;

import java.util.List;
import java.util.Map;

import com.oyjd.ybx.bean.vo.RoleVO;
import com.oyjd.ybx.business.role.vo.SysOperateExVO;

import com.oyjd.ybx.fw.action.Page;


/**
 * 
 * 角色业务接口
 * 
 * @author <b>欧建东<br/>
 *         Email:oyjd@163.com</b>
 * @version 1.0
 */
public interface RoleService {
	/**
	 * 获取角色列表数据
	 * 
	 * @param page
	 *            页面对象
	 * @return
	 */
	Page<RoleVO> getList(Page<RoleVO> page);

	/**
	 * 获取空白模块分组操作
	 * 
	 * @return
	 */
	Map<String, List<SysOperateExVO>> getOps();

	/**
	 * 根据角色ID获取模块分组操作
	 * 
	 * @param roleId
	 *            角色ID
	 * @return
	 */
	Map<String, List<SysOperateExVO>> getOpsByRoleId(String roleId);

	/**
	 * 根据角色ID获取角色信息
	 * 
	 * @param roleId
	 *            角色ID
	 * @return
	 */
	RoleVO getRole(String roleId);

	/**
	 * 增加角色
	 * 
	 * @param name
	 *            角色名称
	 * @param description
	 *            角色描述
	 * @param ops
	 *            操作列表
	 * @param user
	 *            当前用户
	 */
	void add(String name, String description, String[] ops, String user);

	/**
	 * 修改角色
	 * 
	 * @param roleId
	 *            角色ID
	 * @param name
	 *            角色名称
	 * @param description
	 *            角色描述
	 * @param ops
	 *            操作列表
	 * @param user
	 *            当前用户
	 */
	void edit(String roleId, String name, String description, String[] ops, String user);

	/**
	 * 删除角色
	 * 
	 * @param roleId
	 *            角色ID
	 * @param user
	 *            当前用户
	 * @return
	 */
	boolean remove(String roleId, String user);

}
